library(stargazer)
library(kableExtra)

# https://www.rdocumentation.org/packages/stargazer/versions/5.2.2/topics/stargazer
gera_tabela <- function(fit1, fit2, fit3, anos, ano_base)
  stargazer(fit1, fit2, fit3,
            type="html",
            out="star_linear_3.doc",
            dep.var.caption = "Variável Dependente",
            dep.var.labels = "Interesse no Magistrado",
            covariate.labels = c(
              "Constante",
              "Interesse na Operação",
              "Citações Independentes",
              anos
            ),
            notes=c(
              "Erros padrão reportados em parêntesis.",
              "*, **, *** indicam significância a 90%, 95% e 99%  respectivamente.",
              sprintf("Ano base: %s", ano_base)
            ),
            notes.align="l",
            notes.label="Notas",
            notes.append = F,
            intercept.bottom = F,
            intercept.top = T,
            decimal.mark = ",",
            digits=2)  

#http://haozhu233.github.io/kableExtra/awesome_table_in_html.html
gera_tabela_totais <- function(tbl_citacoes){
  t <- bind_rows(
    tbl_citacoes,
    tibble(
      "Critério" = c("% Citações não Relacionadas (1)"),
      "Folha" = c(100 * (1 - tbl_citacoes[[2]][2]/tbl_citacoes[[2]][3])),
      "O Globo" = c(100 * (1 - tbl_citacoes[[3]][2]/tbl_citacoes[[3]][3])),
      "Total" = c(100 * (1 - tbl_citacoes[[4]][2]/tbl_citacoes[[4]][3]))
    ),
    tibble(
      "Critério" = c("% Exposição Magistrado (2)"),
      "Folha" = c(100 * tbl_citacoes[[2]][2]/tbl_citacoes[[2]][1]),
      "O Globo" = c(100 * tbl_citacoes[[3]][2]/tbl_citacoes[[3]][1]),
      "Total" = c(100 * tbl_citacoes[[4]][2]/tbl_citacoes[[4]][1])
    )
  )
  knitr::kable(t, digits = 0, format.args = list(big.mark = ".", scientific = FALSE)) %>%
    kable_styling(full_width = T) %>%
    kable_classic_2(full_width = T, html_font = "Arial") %>%
    pack_rows("Dados Brutos", 1, 4) %>%
    pack_rows("Estatísticas", 5, 6) %>%
    footnote(
      number = c(
        "Percentual de citações ao magistrado que não estão relacionadas à operação",
        "Percentual de citações à operação que citam o magistrado"
      )
    )
}
